package ink.tiptop.service;

import ink.tiptop.persist.domain.bo.LocalViewDto;
import ink.tiptop.persist.domain.entity.ZjfServiceRemoteViewEntity;
import ink.tiptop.dto.req.remote.*;
import ink.tiptop.common.domain.rsp.Response;

import java.util.List;
import java.util.Observer;


/**
 * 服务远程视图(ZjfServiceRemoteView)表服务接口
 *
 * @author zjf
 * @since 2020-07-22 08:45:34
 */
public interface ZjfServiceRemoteViewService extends Observer {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ZjfServiceRemoteViewEntity queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @return 对象列表
     */
    List<ZjfServiceRemoteViewEntity> queryAll();

    /**
     * 新增数据
     *
     * @param zjfServiceRemoteViewEntity 实例对象
     * @return 实例对象
     */
    ZjfServiceRemoteViewEntity insert(ZjfServiceRemoteViewEntity zjfServiceRemoteViewEntity);



    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 条件查询
     *
     * @param request 实例对象
     * @return 是否成功
     */
    Response list(QueryZjfServiceRemoteViewRequest request);
    
    /**
     * 修改数据
     *
     * @param request 实例对象
     * @return 实例对象
     */
    Response update(UpdateZjfServiceRemoteViewRequest request);
    
    /**
     * 删除数据
     *
     * @param request 实例对象
     * @return 实例对象
     */
    Response delete(DeleteZjfServiceRemoteViewRequest request);
    
    /**
     * 添加数据
     *
     * @param request 实例对象
     * @return Response 响应数据
     */
    Response add(AddZjfServiceRemoteViewRequest request);

    /**
     * 扫描远程服务器信息
     *
     * @param request 实例对象
     * @return Response 响应数据
     */
    Response scan(ScanZjfServiceRemoteViewRequest request);

    ZjfServiceRemoteViewEntity queryByUniqueIndex(ZjfServiceRemoteViewEntity serviceRemoteViewEntity);

    List<ZjfServiceRemoteViewEntity> getByLocalView(LocalViewDto dto);
}